/**************************************************************************** 
 * Meta，一个轻量级的静态分区Hypervisor 
 *
 * 版权(c) , 2022-
 *
 * 作者:
 *      Tupelo Shen <shenwanjiang2013@163.com>
 *
 * Meta是一个自由软件，你可以在遵循GNU GPLv2协议的条件下，重新修改并发布它。
 *
 ***************************************************************************/

#ifndef __ARCH_CPU_H__
#define __ARCH_CPU_H__

#include <meta.h>
#include <arch/psci.h>

/* 定义最大核心数 */
#define CPU_MAX (8UL)

/* 定义CPU架构相关的PSCI和多核处理器ID寄存器 */
struct cpu_arch {
    struct psci_off_state psci_off_state;
    unsigned long mpidr;
};

/* 将线性cpuid转换成亲和力值 */
unsigned long cpu_id_to_mpidr(cpuid_t id);
/* 将亲和力值转换成线性cpuid */
// int64_t cpu_mpidr_to_id(uint64_t mpdir);

extern cpuid_t CPU_MASTER;

#endif /* __ARCH_CPU_H__ */
